class Amigo {
    private final String nombre;

    public Amigo(String nombre) {
        this.nombre = nombre;
    }

    public String obtenerNombre() {
        return nombre;
    }

    public synchronized void hacerReverencia(Amigo a) {
        System.out.format("¡%s saluda a %s!%n",
            nombre, a.obtenerNombre());
        a.retirarReverencia(this);
    }

    public synchronized void retirarReverencia(Amigo a) {
        System.out.format("¡%s retira la reverencia a %s!%n",
            nombre, a.obtenerNombre());
    }
}
